package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ApproveCurReportInfoAndUpdateDataComReqDto
 * @使用场景
 */
@Data
public class ApproveCurReportInfoAndUpdateDataComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 是否 TRUE:是 FALSE:否
   */
  @NotNull(message = "财务是否计算不能为空")
  @ApiModelProperty("财务是否计算")
  private String tureOrFalse;

  /**
   * 状态业务操作类型 AUTO_ORDER:状态自动更新指令 OVERDUE_SUB_REPORT_TASK_SUB_TO_EVA:111逾期-提交汇报任务（待汇报转评价中） OVERDUE_SUB_REPORT_TASK_SUB_TO_EXA:逾期-提交汇报任务（待汇报转审核中） OVERDUE_SUB_REPORT_TASK_SUB_TO_SUC:逾期-提交汇报任务（待汇报转已成功） OVERDUE_EVA_REPORT_TASK_EVA_TO_EXA:逾期-评价汇报任务（评价中转审核中） OVERDUE_EVA_REPORT_TASK_EVA_TO_SUC:逾期-评价汇报任务（评价中转已成功） OVERDUE_EXA_REPORT_TASK_EXA_TO_SUC:逾期-审核汇报任务（审核中转已成功） OVERDUE_EXA_REPORT_TASK_EXA_TO_FAIL:逾期-审核汇报任务（审核中转已失败） OVERDUE_CANCEL_REPORT_TASK_EVA_TO_SUB:逾期-撤销汇报任务（评价中转待汇报） OVERDUE_CANCEL_REPORT_TASK_EXA_TO_SUB:逾期-撤销汇报任务（审核中转待汇报） OVERDUE_REJECT_REPORT_TASK_EVA_TO_SUB:逾期-驳回任务（评价中转待汇报） OVERDUE_REJECT_REPORT_TASK_EXA_TO_SUB:逾期-驳回任务（审核中转待汇报） AUTO_REPORT_AUTO_EXECUTE:自动汇报自动执行指令 ARRANGE_SIGN_WORK_TASK:安排待签收工作任务 ARRANGE_NO_SIGN_WORK_TASK:安排无需签收工作任务 CONFIRM_SIGN_WORK_TASK:确认签收工作任务 UPDATE_WORK_TASK_DONE:更新进度 100 完成工作任务 UPDATE_WORK_TASK_SCHEDULE:更新工作任务进度小于100 LABOUR_VOID_WORK_TASK:人工作废工作任务 WORK_TASK_LABOR_ADVANCE_START:工作任务人工提前开始 WORK_TASK_LABOR_DELAY_START:工作任务人工延后开始 AUTO_ANA_NOT_AT_THE_REPORT_TASK_ONG:自动分析待汇报任务（未开始转进行中） AUTO_GEN_REPORT_TASK:自动生成汇报任务（待汇报-空转未开始） AUTO_GEN_REPORT_TASK_ONGOING:自动生成汇报任务（待汇报-空转进行中） AUTO_ANA_SUBMIT_TO_SUC:自动分析进行中汇报任务（待汇报转已成功） SUB_REPORT_TASK_SUB_TO_EVA:提交汇报任务（待汇报转评价中） SUB_REPORT_TASK_SUB_TO_EXA:提交汇报任务（待汇报转审核中） SUB_REPORT_TASK_SUB_TO_SUC:提交汇报任务（待汇报转已成功） CANCEL_REPORT_TASK_EVA_TO_SUB:撤销汇报任务（评价中转待汇报） CANCEL_REPORT_TASK_EXA_TO_SUB:撤销汇报任务（审核中转待汇报） REJECT_REPORT_TASK_EVA_TO_SUB:驳回任务（评价中转待汇报） REJECT_REPORT_TASK_EXA_TO_SUB:驳回任务（审核中转待汇报） SUB_REPORT_TASK_SUB_OVERDUW_TO_SUC:提交汇报任务（已逾期转已成功） EVA_REPORT_TASK_EVA_TO_EXA:评价汇报任务（评价中转审核中） EVA_REPORT_TASK_EVA_TO_SUC:评价汇报任务（评价中转已成功） EXA_REPORT_TASK_EXA_TO_SUC:审核汇报任务（审核中转已成功） EXA_REPORT_TASK_EXA_TO_FAIL:审核汇报任务（审核中转已失败） INITIATE_QUESTION_QUESTIONABILITY:发起问题待解决 111EXA_REPORT_TASK_EXA_TO_FAIL:111审核汇报任务（审核中转已失败） AUTO_ANA_SUBMIT_TO_OVERDUE:自动分析逾期任务（待汇报转已逾期） AUTO_ANA_EVA_TO_OVERDUE:自动分析逾期任务（评价中转已逾期） AUTO_ANA_EXA_TO_OVERDUE:自动分析逾期任务（审核中转已逾期） AUTO_ANA_OVERDUE_TO_FAIL:自动分析失败任务（已逾期转已失败） LABOUR_SHELVE_QUESTION:人工暂搁置问题 LABOUR_REJECTED_QUESTION:人工拒绝问题 LABOUR_SUSPENDED_QUESTION:人工挂起问题 LABOUR_CLOSED_QUESTION:人工关闭问题 LABOUR_CHANGE_QUESTIONABILITY_QUESTION:人工转问题待解决 LABOUR_RESOLVED_QUESTION:人工解决问题 QUESTION_AUTO_ORDER:问题自动更新指令 LABOUR_CHANGE_QUESTIONABILITY_OVERTIME_QUESTION:人工转超时问题待解决 SOLVE_PROBLEM_QTA_TO_OTHER:待解决或已超时问题转其他状态 OTHER_STATUS_PROBLEM_TO_SOLVE:其他状态问题转待解决 OTHER_STATUS_PROBLEM_TO_OVERTIME:其他状态问题转已超时 EVA_REPORT_TASK:评价汇报任务（评价中）
   */
  @ApiModelProperty("任务转成功状态业务操作类型")
  private String statusBizOptType;

  /**
   * 数据对象批次标识
   */
  @NotNull(message = "数据对象批次标识不能为空")
  @ApiModelProperty("数据对象批次标识")
  private String dataObjectBatchCode;

  /**
   * 计算开始时间
   */
  @NotNull(message = "计算开始时间不能为空")
  @ApiModelProperty("计算开始时间")
  private Date calcStartTime;

  /**
   * 审核通过或失败操作类型 APPROVE:审核通过 AUDIT_FAILURE:审核失败
   */
  @NotNull(message = "审核通过或失败操作类型不能为空")
  @ApiModelProperty("审核通过或失败操作类型")
  private String examineOptType;

  /**
   * 任务ID
   */
  @ApiModelProperty("任务ID")
  private String taskId;

  /**
   * 周期阶段资料记录ID
   */
  @ApiModelProperty("周期阶段资料记录ID")
  private String cycleStageDataId;

  /**
   * 是否清理汇报任务调度等 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否清理汇报任务调度等不能为空")
  @ApiModelProperty("是否清理汇报任务调度等")
  private String isClearReportTaskSchedulEtc;

  /**
   * 预算账户ID
   */
  @ApiModelProperty("预算账户ID")
  private String budgetAccountId;

  /**
   * 实体账户ID
   */
  @ApiModelProperty("实体账户ID")
  private String physicalAccountId;

  /**
   * 是否到账账户 TRUE:是 FALSE:否
   */
  @ApiModelProperty("是否到账账户")
  private String isIncomingAccount;

  /**
   * 账单金额
   */
  @ApiModelProperty("账单金额")
  private Double billAmount;

  /**
   * 流水业务故事信息
   */
  @ApiModelProperty("流水业务故事信息")
  private String billBizStory;

  /**
   * 资金使用科目ID
   */
  @ApiModelProperty("资金使用科目ID")
  private String fundUsageSubjectld;

  /**
   * 预算费用支出科目ID
   */
  @ApiModelProperty("预算费用支出科目ID")
  private String budgetExpenseSubjectld;

  /**
   * 预算费用到账科目ID
   */
  @ApiModelProperty("预算费用到账科目ID")
  private String budgetExpensesReceivedSubjectld;

  /**
   * 关联扣减预算账户归属主体标识
   */
  @ApiModelProperty("关联扣减预算账户归属主体标识")
  private String relSubBudgetAccountCode;

  /**
   * 对方名称
   */
  @ApiModelProperty("对方名称")
  private String oppositeName;

  /**
   * 对方logo
   */
  @ApiModelProperty("对方logo")
  private String oppositeLogo;

  /**
   * 是否开启中期 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否开启中期不能为空")
  @ApiModelProperty("是否开启中期")
  private String openMidCycle;

  /**
   * 上一更新周期ID
   */
  @ApiModelProperty("上一更新周期ID")
  private String preUpdateCycleId;

  /**
   * 归属周期ID
   */
  @NotNull(message = "归属周期ID不能为空")
  @ApiModelProperty("归属周期ID")
  private String cycleId;

  /**
   * 周期结束时间
   */
  @NotNull(message = "周期结束时间不能为空")
  @ApiModelProperty("周期结束时间")
  private Date cycleEndTime;

  /**
   * 周期开始时间
   */
  @NotNull(message = "周期开始时间不能为空")
  @ApiModelProperty("周期开始时间")
  private Date cycleStartTime;

  /**
   * 周期类型标识
   */
  @NotNull(message = "周期类型标识不能为空")
  @ApiModelProperty("周期类型标识")
  private String cycleTypeCode;

  /**
   * 父子中过程周期类型 PARENT_CYCLE:父周期 MID_CYCLE:中期 SUB_CYCLE:子周期 PROCESS_CYCLE:过程周期
   */
  @NotNull(message = "父子中过程周期类型不能为空")
  @ApiModelProperty("父子中过程周期类型")
  private String parentSubMidCycleType;

  /**
   * 是否末级周期 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否末级周期不能为空")
  @ApiModelProperty("是否末级周期")
  private String isLastCycle;

  /**
   * 被评对象目标周期ID
   */
  @NotNull(message = "被评对象目标周期ID不能为空")
  @ApiModelProperty("被评对象目标周期ID")
  private String evaObjTargetCycleId;

  /**
   * 被评对象目标周期标识
   */
  @NotNull(message = "被评对象目标周期标识不能为空")
  @ApiModelProperty("被评对象目标周期标识")
  private String evaObjTargetCycleCode;

  /**
   * 上级被评对象目标周期标识
   */
  @ApiModelProperty("上级被评对象目标周期标识")
  private String parentEvaObjTargetCycleId;

  /**
   * 关联目标内容ID
   */
  @NotNull(message = "关联目标内容ID不能为空")
  @ApiModelProperty("关联目标内容ID")
  private String targetCycleContentId;

  /**
   * 周期模式类型编码 FATHER_SON_CYCLE:父子周期 SINGLE_CYCLE:单周期 IRREGULAR_CYCLE:不规则周期
   */
  @NotNull(message = "周期模式类型编码不能为空")
  @ApiModelProperty("周期模式类型编码")
  private String periodicModeTypeCode;

  /**
   * 冗余评价模板ID
   */
  @NotNull(message = "冗余评价模板ID不能为空")
  @ApiModelProperty("冗余评价模板ID")
  private String evaluationTemplateId;

  /**
   * 操作人就职记录ID
   */
  @NotNull(message = "操作人就职记录ID不能为空")
  @ApiModelProperty("操作人就职记录ID")
  private String operationInductionId;

  /**
   * 角色标识
   */
  @ApiModelProperty("当前操作人小圈子角色标识")
  private String roleCode;

  /**
   * 是否自定义执行周期阶段 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否自定义执行周期阶段不能为空")
  @ApiModelProperty("是否自定义执行周期阶段")
  private String isDefinedExecuteCycleStage;

  /**
   * 冗余目标ID
   */
  @NotNull(message = "冗余目标ID不能为空")
  @ApiModelProperty("冗余目标ID")
  private String targetId;

  /**
   * 是否开启MQ消息队列 TRUE:是 FALSE:否
   */
  @NotNull(message = "是否开启MQ消息队列不能为空")
  @ApiModelProperty("是否开启MQ消息队列")
  private String isOpenMq;

}
